Communications network

ABSTRACT

Nodes in a datagram network are arranged to route datagrams in dependence on a batch start time parameter contained in the header of datagrams belonging to a batch. A network operator is thus able to offer a service that is connection-oriented at the batch level, without necessarily being connection-oriented at the message level. This is advantageous to the network operator since it allows the packet flow generated by the user to be re-routed during the transmission of the message. The user can arrange those datagrams which are required to be delivered from the network in the same order as they are supplied to the network into batches. In that way, the user is not adversely affected by route changes made by the network operator in order to improve the performance of the datagram network.

This application is the US national phase of international applicationPCT/GB01/01384 filed 28 Mar. 2001 which designated the U.S.

BACKGROUND

1. Technical Field

According to an exemplary embodiment of the present invention, there isprovided a method of operating a datagram network node having at leastone input channel and a plurality of output channels, said methodcomprising the steps of:

2. Related Art

It is now common for messages (whether they be telephone conversationsor data file transfers) to be divided into packets before transmissionacross a communications network. This is advantageous to the operator ofthe communications network because packets from one message can beinterspersed with packets from another message. That enables a moreefficient utilisation of the available network resources.

Some packet networks offer the user a connectionless service. This meansthat a user using the network to transfer packets cannot rely on thenetwork to output the packets in the same order he or she puts them in.In applications such as data transfer between two computers, the burdenthis places on the user is found to be acceptable. This is becausecomputers are often supplied with networking software which controls thecomputer to attach a sequence number to each outgoing packet when itacts as a sender and to order received packets in accordance with theirsequence number when it acts as a receiver.

Other packet networks offer the user a connection-oriented service.Here, the network can be relied on to output the packets derived from agiven message in the same order as that in which they are supplied tothe network. In practice, in order to offer such a service it is foundnecessary to send every one of the packets derived from a given messagealong the same route. Most telecommunications networks provide aconnection-oriented service and this requirement for persistent routesreduces a telecommunications network operator's ability to manage thetraffic traversing its network. Over recent years, computer data hasprovided an increasing proportion of telecommunications traffic. Asexplained above, data transfer between computers does not require aconnection-oriented service—hence a telecommunications network that cantake advantage of this and offer a connection-oriented service only tothose that require it is becoming increasingly desirable.

BRIEF SUMMARY

According to the present invention, there is provided a method ofoperating a datagram network node having at least one input channel anda plurality of output channels, said method comprising the steps of:

-   -   forwarding a leading subset of a batch of datagrams in        accordance with a stored extant route entry comprising an        indication of a datagram-carried route identifier and an        associated extant output channel;    -   storing a new route entry comprising an indication of said        datagram-carried route identifier and an associated new output        channel;    -   forwarding one or more datagrams in accordance with said new        route entry;    -   subsequently identifying one or more datagrams as members of a        trailing subset of said batch of datagrams; and    -   forwarding members of said trailing subset in accordance with        said extant route entry.

By operating the node to forward a trailing subset of a batch ofdatagrams received after a routing update over the same channel as aleading subset received before the routing update, the likelihood of thedatagram network re-ordering the packets in said batch is reduced.Furthermore, the user is offered a continuous range of service between aconnection-oriented service to an almost connectionless service. Aconnection-oriented service might be obtained by placing every packetderived from a given message in the same batch, an almost connectionlessservice might be obtained by placing only two consecutive packets fromthe message in each batch.

In preferred embodiments of the present invention, said datagrams insaid one or more batches include a time parameter which is substantiallyequal to the time of generation of the first datagram of said batch,said new route entry has a start time associated with it; and saididentification step involves identifying datagrams having a timeparameter which precedes the indicated start time as belonging to atrailing subset of one of said one or more batches of datagrams.

By identifying only that a received datagram belongs to a trailingsubset whose transmission started before the start time of the newroute, the need to examine a batch identifier that would otherwise haveto be carried in the packet is obviated. This means that individualbatch identifiers need not be stored at the network node or in packetswhich are members of the batch.

Other aspects of the present invention are set out in the accompanyingclaims.

BRIEF DESCRIPTION OF THE DRAWINGS

There now follows a description of specific embodiments of the presentinvention. The embodiments are described by way of example only, withreference to the accompanying figures in which:

FIG. 1 shows an internetwork which operates in accordance with a firstembodiment of the present invention;

FIGS. 2A, 2B and 2C are flow charts illustrating the operation of apacket source which operates in accordance with a first embodiment ofthe present invention;

FIG. 3 shows a pair of entries in a routing table stored in one of therouters of the internetwork of FIG. 1;

FIG. 4 is a flow chart illustrating the forwarding process carried outby one or more of the routers of FIG. 1;

FIG. 5 illustrates an example of a packet sequence received by a routerin the internetwork of FIG. 1;

FIG. 6 shows one of the packets of FIG. 5 in more detail;

FIG. 7 shows another of the packets of FIG. 5 in more detail; and

FIG. 8 shows how the packets of FIG. 5 are handled by a router operatingin accordance with the forwarding process of FIG. 4.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

FIG. 1 shows an internetwork comprising a southern Local Area Network(LAN) N2, a Wide Area Network (WAN) N1, a north-eastern LAN N3, anorth-western LAN N4 and links L4, L5, L6 therebetween. The southern LANN2 is connected via a southern outer link L4 to the WAN N1. The WAN N1is connected by a north-eastern outer link L5 to north-eastern LAN N3and by a north-western outer link L6 to north-western LAN N4.

The WAN N1 comprises a southern core router C1, a northern core routerC2 and an Frame Relay network N5 that interconnects them. The southerncore router C1 is connected to the northern end of the southern outerlink L4. The northern core router C2 is connected to the southern endsof the north-eastern outer link L5 and the north-western outer link L6.

The Frame Relay network N5 includes a southern core switch S1, aneastern core switch S2 and a northern core switch S3. A southernintermediate link L7 connects the southern core switch S1 to thesouthern core router C1. A northern intermediate link L8 connects thenorthern core switch S3 to the northern core router C2. A first innerlink L9 interconnects the southern core switch S1 to the northern coreswitch S3. Eastern core switch S2 is connected to the southern coreswitch S3 and the northern core switch S1 by second inner link L10 andthird inner link L11 respectively.

As will be understood by those skilled in the art, the Frame Relaynetwork N5 is configured to provide a direct Permanent VirtualConnection (PVC) P1 between the southern core switch S1 and the northerncore switch S3, which direct PVC uses the first inner link L9. The FrameRelay network N5 is further configured to provide an indirect PVC P2between the same switches S1,S3, which indirect PVC P2 utilises secondinner link L10, second core switch S2 and third inner link L11. Each ofthe PVCs is configured to provide a 2 Mbits⁻¹ service across the FrameRelay Network N1.

The southern LAN N2 comprises a LAN E1 that operates in accordance withthe IEEE 802.3 standard and two devices connected thereto, namely avideo workstation H1 and southern router R1. The video workstation H1includes a video card which is connected to a video camera 10. Thenetwork software in video workstation H1 differs from normal TCP/IPnetworking software in a way that will be described in relation to

FIG. 3 below. Southern router R1 is connected to the southern end of thesouthern outer link L4.

The north-eastern LAN N3 comprises a LAN E2 that operates in accordancewith the IEEE 802.3 standard and two devices connected thereto, namely apersonal computer H2 and north-eastern router R2. North-eastern routerR2 is connected to the northern end of the north-eastern outer link L5.

The north-western LAN N4 comprises a wireless LAN E3 which operates inaccordance with the IEEE 802.11 standard and which interconnects awireless IP router R3 and a mobile handset H3. The mobile handset H3 isarranged to be able to provide a video display to its user on screen 12.The wireless IP router R3 is connected to the northern end of thenorth-western outer link L6.

In the example described, the internetwork (FIG. 1) is configured so theinterfaces between elements of the outer networks N2, N3, N4 have theIPv4 addresses set out in Table 1 below:

TABLE 1 Interface IP address Interface IP address Interface IP addressH1 to E1 204.20.74.21 H2 to E2 204.12.241.10 H3 to E3 204.12.245.2 E1 toR1 204.20.74.1 E2 to R2 204.12.241.1 E3 to R3 204.12.245.1 R1 to L4204.00.35.1 R2 to L5 204.02.01.2 R3 to L6 204.02.02.2 L4 to C1204.00.35.2 L5 to N1 204.02.01.1 L6 to C1 204.02.02.1

Within the WAN N1, the southern core router C1 is configured to have twoIP addresses assigned to the southern intermediate link L7. One of thoseIP addresses is associated with the PVC P1, the other is associated withthe PVC P2. The northern core router C2 is equivalently configured. Inthe present example, the IP addresses assigned to those interfaces areas set out in Table 2 below.

TABLE 2 Interface IP address Interface IP address C1 to P1 204.00.01.1C2 to P1 204.00.01.2 C1 to P2 204.00.02.1 C2 to P2 204.00.02.2

The video workstation H1 is arranged to receive video data from thevideo camera 10 and process it to provide encoded video data. Theencoded video data is arranged into 1.25 Kbyte blocks. The video dataencoding process is such that a 20 ms video frame which differssubstantially from its predecessor produces ten 1.25 Kbyte blocks ofencoded video data. Frames which generate ten blocks of encoded videodata are hereinafter referred to as key frames—key frames might, forexample, result from video camera 10 panning across the scene in frontof it. The ten blocks produced in response to a key frame are referredto hereinafter as a key frame block group. In contrast to key frames, a20 ms frame which differs only in minor details from the previous framegenerates only one 1.25 Kbyte block of data. Such frames are referred toherein as ordinary frames and the blocks of data that encode them asordinary blocks. The video data encoding process places a sequencenumber in each block and also labels the fifth ordinary block of anyseries of consecutive ordinary blocks as a quiet period indicator block.

The video workstation H1 is further arranged to respond to requests forlive video data from devices attached to the internetwork (FIG. 1) byoperating an encoded video data packet generation process (FIGS. 2A, 2Band 2C).

On receipt of a request for video data (step 200) the workstation H1first finds whether the device requesting the video data requires aquasi-connection-oriented service or not (step 202). In the presentembodiment this is achieved by noting the TCP/UDP port number on whichthe request arrives. If a quasi-connection-oriented service is requiredthen the workstation H1 operates in accordance with a special packetgeneration process (FIG. 2B). If a quasi-connection-oriented service isnot required then the workstation H1 instead operates in accordance witha normal packet generation process (FIG. 2C).

The special packet generation process (FIG. 2B) is carried out onceevery 10 ms (step 210). The process begins with the retrieval (step 212)of a 1.25 Kbyte block of data produced by a video data encoding process.Thereafter, the workstation H1 finds (step 214) whether that 1.25 Kbyteblock is a quiet period indicator block. If it is, then aquasi_connection_reset_time parameter is updated with the current time(step 216). In either case, control next passes to a special headergeneration step (step 218).

The special IP header generation step (step 218) generates a packetheader which is constructed substantially in accordance with theInternet Protocol version 4 (Ipv4) but which has an additional 32-bitfield at the end of the header. Such fields are known as ‘option’ fieldsin the art. Some options have already been standardised. However theoption in the present case is new and is referred to herein as a ‘QCOOption’. The first byte of the thirty-two bits contains a valueidentifying the option as a QCO Option, the last three bytes provide aquasi-connection reset time field. The quasi_connection_reset_time setin the most recent update step (step 216) is written into thequasi-connection reset time field. That time is expressed as the numberof hundredths of seconds that had elapsed in the current day (GreenwichMean Time) at the time that the quasi_connection_reset_time parameterwas last set (in the present description all times will be representedin 24-hour time-of-day notation).

The special header thus generated is appended to the 1.25 Kbyte block ofvideo data to form a special IP packet (step 220). As soon as thatpacket is formed it is transmitted onto the LAN E1 (step 222).

It will be seen that the special IP packet generation process (FIG. 2B)generates a packet containing around 1.25 Kbytes of data every 10 ms.This leads to the transmission of data onto the LAN E1 at a rate ofaround 1 Mbits⁻¹.

The normal packet generation process (FIG. 2C) is similar to the specialpacket generation process (FIG. 2B) save that it does not involve acheck to find whether the current 1.25 Kbyte block is a quiet periodindicator block and the consequent updating of thequasi_connection_reset_time parameter. Also, the header generation step(step 230) and the packet generation step (step 232) differ in that thegenerated header does not include a QCO option field.

Both packet generation processes produce one packet per block of encodedvideo data. Packets carrying quiet period indicator blocks are referredto a quiet period indicator packets, packets carrying key frame initialblocks are referred herein as key frame initial packets and the group ofpackets corresponding to a key frame block group are referred to hereinas a key frame packet group.

FIG. 3 shows an excerpt from the routing table stored in southern corerouter C1. Each routing table entry comprises a destination IP addressparameter, a route number parameter, a route update time parameter, anext hop IP address parameter and a physical output port parameter. Therouting table formation software is similar to conventional routingtable formation software but enables the operator of the router C1 tomake one or more further routing table entries for one or more selecteddestination addresses. On making such further routing table entries, theoperator also provides a route update time parameter to be associatedwith the entry. The software controls the router C1 to automaticallyrank entries for a given destination address on the basis of their routeupdate time parameter. The entry having the earliest route update timehas its route number parameter set to 1, the next earliest has its routenumber set to 2 and so on. If the number of routing table entries forthat destination address has already reached a predetermined maximumnumber (5 say), then the router is arranged to delete the routing tableentry whose route number parameter is set to one and decrement the routenumber of each of the other stored routes for that destination by one.

Those skilled in the art will be able to generate suitable routing tableformation software for the router C1.

As will be understood by those skilled in the art, the value in thedestination IP address field in FIG. 3 applies to all destinationaddresses in the range 204.12.240.0 to 204.12.255.255—i.e. any addresseswhose first twenty bits are identical to the first twenty bits of theaddress 204.12.240.0. This has the result that packets addressed toeither a device attached to the north-eastern network N4 or a deviceattached to the north-western network N3 are routed using only therouting table entries illustrated in FIG. 3.

The southern core router C1 is arranged to route packets received at C1by carrying out a routing process illustrated by the flow chart of FIG.4.

On a packet being received (step 400) the router C1 first finds (step402) whether the QCO Option is present in the header of the packet.

If the QCO option is present (i.e. the packet is a special packet), thena counter n is initialised to a value (step 408) equal to the number ofrouting entries currently stored for the destination address found inthe packet. Thereafter, the quasi-connection reset time is read from thepacket header and compared to the route update time associated withroute number n. If the quasi-connection reset time is later than theroute update time then the packet is forwarded (step 412) on the basisof that route.

If the quasi-connection reset time is earlier than the route update timethen a first check is carried out to find whether the route associatedwith the route update time is in fact the only routing entry for thepacket (step 414). If it is the only entry, then the packet is forwardedon the basis of that entry (step 412).

If, on the other hand, one or more other routing entries exist for thepacket's destination address then a searching process (steps 416, 410,414) is carried out to find the routing table entry whose route updatetime most closely precedes the quasi-connection reset time found in theheader of the special packet.

Each round of the searching process begins by decrementing the counter nby 1 (step 416). Thereafter, the route update time associated with routenumber n is compared to the quasi-connection reset time. If the routeupdate time for that route number precedes the quasi-connection resettime then the routing table entry whose route update time most closelyprecedes the quasi-connection reset time has been found and the packetis forwarded on the basis of that routing table entry (step 412).Otherwise, the current round of the searching process continues with acheck (step 414) that the counter has not reached one (i.e. that otherrouting table entries for this destination remain to be searched). If nosuch routing table entries exist, then there is no routing entry havinga route update time that precedes the quasi-connection reset time, sothe packet is forwarded on the basis of the route having the oldestroute update time available (step 412).

If the counter is still greater than one then a further round of thesearching process described above is carried out.

It will be realised that for special packets having a QCO option, theeffect of the routing process shown in FIG. 4 will be to forward thosepackets on the basis of the routing table entry whose route update timeparameter most closely precedes the quasi-connection reset timeparameter found in the QCO option field of the special packet.

If the QCO option is found not to be present (step 402) then a counter mis initialised to a value (step 420) equal to the number of routingentries currently stored for the destination address found in thepacket. Thereafter, the current time (GMT) is compared to the routeupdate time stored associated with route number m. If the time is nowlater than the route update time then the packet is forwarded (step 422)on the basis of that route.

If the route update time has not yet been reached then a first check iscarried out to find whether the route associated with the route updatetime is in fact the only routing entry for the packet (step 426). If itis the only entry, then the packet is forwarded on the basis of thatentry (step 424).

If, on the other hand, one or more other routing entries exist for thepacket's destination address then a searching process (steps 428, 422,426) is carried out to find the routing table entry with the most recentroute update time.

Each round of the searching process begins by decrementing the counter mby 1 (step 428). Thereafter, the route update time associated with routenumber m is compared to the current time. If the route update time forthat route number has already occurred then the routing table entry withthe most recent route update time has been found and the packet isforwarded on the basis of that routing table entry (step 424).Otherwise, the current round of the searching process continues with acheck (step 426) that the counter m has not reached one (i.e. that otherrouting table entries for this destination remain to be searched). If nosuch routing table entries exist, then there is no routing entry havinga route update time that precedes the current time, so the packet isforwarded on the basis of the route having the closest route update time(step 424).

If the counter m is still greater than one then a further round of thesearching process described above is carried out.

It will be realised that for normal packets, the effect of the routingprocess shown in FIG. 4 will be to forward those packets on the basis ofthe routing table entry with the most recent route update timeparameter.

A specific example of the performance of the internetwork (FIG. 1) willnow be described with reference to FIGS. 5, 6, 7 and 8.

For the purposes of this example it is assumed that the personalcomputer H2 connected to the north-eastern LAN N3 requests the videoworkstation H1 to supply it with live video data representing what thevideo camera 10 is currently viewing. The personal computer H2 isoperating under control of networking software that uses the sequencenumber contained in the blocks of video data to re-order live videopackets that arrive in the wrong order. Since the personal computer H2therefore does not require the packets to be delivered to it in theright order, the personal computer H2 indicates in its request that itdoes not require a quasi-connection-oriented service from theinternetwork. The video workstation receives the request and responds bycarrying out the normal packet generation process (FIG. 2C).

At the same time, the user of mobile handset H3 (connected to thenorth-western LAN N4) requests the video workstation H1 to supply itwith the same live video data. In contrast to the personal computer H2,the mobile handset H3 is arranged to carry out as little data processingas possible. By requesting a quasi-connection-oriented service from theinternetwork (FIG. 1) the data processing associated with re-orderingpackets is obviated. Hence, the mobile handset H3 requests aquasi-connection-oriented service. The video workstation receives therequest and responds by carrying out the special packet generationprocess (FIG. 2B).

Once both video streams are being generated by the video workstation H1,the packets might arrive at the southern core router C1 as illustratedin FIG. 5. It will be seen that the packets received at the router C1alternate between those belonging to a stream S1 of special packetsaddressed to the mobile handset H3 and those belonging to a stream S2 ofnormal packets addressed to the personal computer H2. The time betweenpacket arrivals is around 5 ms and the arrival of packets is shown overa time period that extends from around 19:48:03:65 until 19:48:04.05.

In the present example, it is assumed that each stream includes a keyframe packet group (K1, K2), the initial packets of which arrive at thesouthern core router at around 19:48:03.85. The key frame special packetgroup K1 contains special packets A1, A2, A3, A4, A5, A6, A7, A8, A9,and A10. Each of those packets (FIG. 6) has:

-   a) a destination IP address field set to the IP address of the    interface between the mobile handset H3 and the wireless LAN E3    (i.e. 204.12.245.2); and-   b) a QCO option field containing a quasi-connection reset time    parameter set to the transmission time of the quiet period marker    packet I (19:48:03.75). (Note that, in the present case, the arrival    time at the southern core router C1 is assumed to be substantially    simultaneous with the transmission time from the video workstation    H1).

The key frame normal packet group K2 contains normal packets B1, B2, B3,B4, B5, B6, B7, B8, B9, and B10. Each of those packets (FIG. 7) has adestination IP address field set to the IP address of the interfacebetween the personal computer H2 and the LAN E2 (i.e. 204.12.241.10) butdoes not have a QCO option field.

Each of the normal packets B1, B2, B3, B4, B5, B6, B7, B8, B9, B10 inthe normal stream S2 leads the corresponding packet A1, A2, A3, A4, A5,A6, A7, A8, A9, A10 in the quasi-connection-oriented stream by 5 ms. Theorder of arrival of the packets of the key frame packet groups K1, K2 atthe southern core router is therefore B1, A1, B2, A2, B3, A3, B4, A4,B5, A5, B6, A6, B7, A7, B8, A8, B9, A9, B10, A10.

In the present example, it is assumed that, prior to or at 19:48:03.90,a second entry (see FIG. 3) for destinations in the range 204.12.204.0to 204.12.255.255 is added to the routing table, which additional entryhas a route update time parameter which indicates the time 19:48:03.90.Such an entry might be added automatically or manually in order to causedata travelling from the southern core router C1 to the northern corerouter C2 to be carried along the PVC P2 rather than the PVC P1 after19:48:03.90. This might be done because it is known that the link L9 isto be withdrawn from service at 19:50, or it might be done in order tobalance the load placed on different parts of the Frame Relay networkN5.

The southern core router carries out the process of FIG. 4 in relationto each of the received packets B1, A1, B2, A2, B3, A3, B4, A4, B5, A5,B6, A6, B7, A7, B8, A8, B9, A9, B10, A10.

For each of the packets A1, A2, A3, A4, A5, A6, A7, A8, A9, A10 in thekey frame special packet group K1, step 410 of FIG. 4 will find that theroute update time (19:48:03.90) for route number 2 falls after thequasi-connection reset time (19:48:03.75) contained in the QCO optionfield of the packet (FIG. 6). Hence route number 2 will be disregardedand the packets will be forwarded on the basis of route number 1—i.e.over PVC P1.

For each of the first five packets B1, B2, B3, B4, B5 in the key framenormal packet group K2, step 422 of FIG. 4 will find that the currenttime (19:48:03.85-.90) is before the route update time associated withroute number 2 (i.e. that the route update time has not yet occurred).Hence, the first five packets B1, B2, B3, B4, B5 will be forwarded overroute number 1—i.e. over PVC P1.

For each of the last five packets B6, B7, B8, B9, B10 in the key framenormal packet group K2, step 422 of FIG. 4 will find that the currenttime (19:48:03.90-.95) is after the route update time (19:48:03.90)associated with route number 2 (i.e. that the route update time has nowoccurred). Hence, the second five packets B6, B7, B8, B9, B10 will beforwarded over route number 2—i.e. over PVC P2.

FIG. 8 is an illustration of the packets queued for the intermediatelink L7 at 5 ms intervals from the moment of arrival of the fifth keyframe special packet A5. There are two queues associated with the linkL7, a first queue Q1 for the PVC P1, and a second queue Q2 for the PVCP2.

In this example, shortly before the arrival of the fifth key framespecial packet A5, congestion has resulted in the first queue Q1 storingthe nine preceding packets B1, A1, B2, A2, B3, A3, B4, A4, B5.

As stated above the capacity of the PVCs P1 and P2 is 2 Mbits⁻¹, soaround one packet can be forwarded from each queue every 5 ms. As thefifth key frame special packet A5 arrives, the first packet B1 of thekey frame normal packet group K2 is forwarded from the first queue Q1.

After 5 ms, the sixth packet of the B6 of the key frame normal packetgroup K2 arrives at the southern core router C1 and is placed in thesecond queue owing to the route update time of route number 2 now havingbeen reached. No other packets are awaiting transmission from the secondqueue Q2, so it (B6) is forwarded immediately over the PVC P2.

The sixth packet A6 of the key frame special packet group K1 arrives 5ms later. Unlike the previously received packet B6, A6 is forwarded tothe first queue Q1 because the route update time is later than thequasi-connection reset time indicated in the QCO option field of thesixth key frame special packet A6. At the same time, the second packetB2 of the key frame normal packet group K2 is forwarded over the PVC P1.

After another 5 ms interval, the seventh packet B7 of the key framenormal packet group K2 arrives at the router C1, is placed in the secondqueue Q2, and is immediately forwarded over the PVC P2.

If the delays over the PVCs P1 and P2 are equal, then it will berealised that packets will arrive at northern core router C2 in theorder that they were sent from southern core router C1. It will be seenthat the packets of the key frame normal packet group K2 have alreadybecome jumbled—the order of sending so far is first normal packet B1,sixth normal packet B6, second normal packet B2, seventh normal packetB7. This results in the personal computer H2 receiving the packets inthat order.

In contrast, the special packets of the key frame special packet groupK1 are all sent to the same queue and hence do not become jumbled andarrive at the mobile handset H3 in the right order.

Around 50 ms after the last of the key frame packets A1-B10 has arrivedat the router C1, the router receives a special packet J which has aquasi-connection reset time parameter set to 19:48:04.00. It will berealised that this results from the block of video data carried inpacket J being found to be the fifth consecutive ordinary block in step214 (FIG. 2) and hence the quasi_connection_reset_time being updated instep 216.

Hence, the router operating in accordance with FIG. 4 finds that theroute update time for route number 2 precedes the quasi-connection resettime indicated in the header and hence forwards the packet along routenumber 2—i.e. along the second PVC P2.

It will be realised that the change in route might still result inpacket re-ordering. However, re-ordering of the ordinary packets willhave a less deleterious effect on the video displayed by the mobilephone than would be caused by re-ordering of the key frame packets.

It will be seen how the first embodiment provides aquasi-connection-oriented service to the network user. By only updatingthe quasi-connection reset times at time when packet re-ordering is lesslikely to cause significant problems, the user is able to receive aservice that provides a more ordered packet stream than a connectionlessservice. By enabling the network operator to re-route traffic flowsduring the lifetime of a traffic flow the network operator is betterable to manage the flow of traffic around its network than it could wereit offering a connection-oriented service.

A number of features of the above-described embodiment can be changed inorder to provide alternative embodiments of the present invention.Possible changes include:

-   i) Even datagrams that are not part of datagram streams that require    a quasi-connection-oriented service might be formed as special    packets, but with the time of transmission being the time of    transmission of that particular datagram.-   ii) the update to the quasi-connection reset time in the datagrams    could be made in response to a signal from the network rather than    independently thereof. This signal could be generated in good time    before a change in the routing of traffic across the network takes    place.-   iii) the invention is, of course, useful in relation to many types    of traffic other than video streams. In relation to streams of voice    data packets, for example, the quasi-connection reset time could be    updated each time that a voice activity detector judges the speaker    to have been silent for more than 1 s, say.-   iv) a maximum limit could be placed on the age of a routing table    entry—once the route was that old the routing table entry would be    deleted.-   v) The routing updates could be those provided by known dynamic    routing algorithms, with the routing processes in the node being    altered such the previous route is stored rather than being    substituted.

The section of the special packet stream extending between packet I andpacket J in the above-described example can be regarded as a ‘virtualpacket’. The creation of such ‘virtual packets’ enables a network tooperate in a connection-oriented like mode of operation for a periodthat may be shorter than the duration of a session but longer than thatof a single datagram. In other words, separate virtual packets aretreated in a connectionless manner, while their component datagrams aretreated in a connection-oriented manner. Therefore, simply by adjustingthe size and duration of its virtual packets, an application will beable to create a dynamic mix of connectionless and connection-orientedmodes of operation within a single session. In terms of the virtualpacket concept, today's connectionless networks are a special case wherethe virtual packet is equivalent to a single datagram, whereasconnection-oriented networks are a special case where the virtual packetis equivalent to a virtual circuit.

1. A method of operating a datagram network node having at least oneinput channel and a plurality of output channels, said methodcomprising: forwarding leading subsets of one or more respective batchesof datagrams in accordance with a stored extant route entry comprisingan indication of a datagram-carried routing identifier and an associatedextant output channel; storing a new route entry comprising anindication of said datagram-carried routing identifier and an associatedextant output channel; forwarding one or more datagrams in accordancewith said new route entry; subsequently identifying one or moredatagrams as members of a trailing subset of said one or more batches ofdatagrams; and forwarding members of said trailing subset in accordancewith said extant route entry.
 2. A method according to claim 1 wherein:said datagrams in said one or more batches include a time parameterwhich is substantially equal to the time of generation of the firstdatagram of said batch; said new route entry has a start time associatedwith it; and said identification step involves identifying datagramshaving a time parameter which precedes the indicated start time asbelonging to a trailing subset of one of said one or more batches ofdatagrams.
 3. A method according to claim 2 wherein saiddatagram-carried routing identifier comprises a destination address. 4.A method according to claim 1 wherein said datagram-carried routingidentifier comprises a destination address.
 5. A method of operating adatagram network comprising: operating a datagram source to: divide amessage into a plurality of sets of one or more datagrams, include atime parameter in each datagram of one or more of said sets thatcomprise a plurality of datagrams which datagram time parameter reflectsthe time of transmission of said set, and to forward said datagrams ontosaid network; storing a plurality of routes and associated route timeparameters for use by at least one node in said datagram network; andoperating said at least one node to forward datagrams in accordance withone of said plurality of routes selected in dependence upon a comparisonof said datagram time parameter and said route time parameter.
 6. Adatagram network node comprising: a plurality of interfaces forcommunication across physical communications links; a routing storestoring: a) a routing identifier; b) a plurality of output interfaceindications associated with said routing identifier; and c) for at leastone of said plurality of output interface indications, an indication ofa routing update time; means for receiving, on an input interface, adatagram including a routing identifier indication and an indication ofan effective time of routing; means arranged in operation to select oneof said plurality of output interface indications in dependence upon acomparison of said routing update time and said effective time ofrouting; and means arranged in operation to forward said datagram fromthe output interface indicated by said selected output interfaceindication.